package com.doctcloud.common.core.annotation;

import javax.validation.Constraint;
import javax.validation.Payload;
import java.lang.annotation.*;

/**
 * 自定义校验注解：值不能为 null，且不能为 0（支持 Integer、Long、Double、Float 等数值类型）
 */
@Documented
@Constraint(validatedBy = {NotZeroValidator.class}) // 指定校验器
@Target({ElementType.METHOD, ElementType.FIELD, ElementType.ANNOTATION_TYPE, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
public @interface NotZero {

    /**
     * 校验失败提示消息（默认同时提示 null 和 0 的情况）
     */
    String message() default "值不能为null或0";

    /**
     * 分组校验（默认无分组）
     */
    Class<?>[] groups() default {};

    /**
     * 负载信息（用于携带额外校验元数据）
     */
    Class<? extends Payload>[] payload() default {};
}